﻿#ifndef __PLANE_H_
#define __PLANE_H_
#include "Articles.h"
#include<QVector2D>
#include"Blood.h"
class WeaponBank;
//飞机类
class Plane : public Articles
{
public:
    //方向
    static  enum  Direction
    {
        up,
        down
    };
    Plane() = default;
    Plane(const int x,const int y);
    Plane(const QPoint& pos);
    virtual~Plane();
    void init();
    void update()override;
    void draw(QPainter* painter)override;
    //设置自动移动属性,方向和步长(一秒距离)
    void setProperty(const QVector2D& vector = QVector2D(0, 1), const int Steplength = 40);
    //碰撞器检查
    //virtual bool Collider(const QRect& collider);
    
    //开启血条-相对位置和方向
    virtual void startBlood(const QPoint& bloodPoint,const QSize& bloodSize);
    //开启血条-间距和方向
    virtual void startBlood(int space, const Direction& dir);
    //关闭血条
    virtual void closeBlood();
    //设置暂停
    void setPause(bool flag);
    //返回武器库的指针
    WeaponBank* getWeaponBank();
    //创建武器库
    void creatorWeaponBank();
    //绑定武器库
    void creatorWeaponBank(WeaponBank* weaponBank);
protected:
    int m_Steplength = 40;//步长
    QVector2D m_vector;//方向向量
    WeaponBank* m_WeaponBank = nullptr;//武器库
private:
    Blood m_blood;
    //绘制血条
    void drawBlood(QPainter* painter);
    bool m_flagBlood=false;//血条开关
    QPoint m_bloodPoint;//血条相对位置
    int ATK=1;//攻击
};

#endif // SPRITE_H